home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 8
/
FM Towns Free Software Collection 8.iso
/
fb386
/
io_bas
/
get_pal.bas
< prev
next >
Wrap
BASIC Source File
|
1994-06-01
|
3KB
|
64 lines
10 '
20 ' < パレットデーターの取得 ( I/O 操作サンプル ) >
30 ' for F-BASIC 386 V2.1 L10 以上
40 ' Programmed by Luzz-tum
50 '
60 ' サブルーチン名「*GET_PAL_16 / *GET_PAL_256」
70 ' パレットデーターを取得し、配列変数 PAL_DAT ( pallete_No , RGB )
80 ' に格納します。16 / 256 色用の2つがあり、それぞれ使用前に、下記以
90 ' 上の大きさの配列変数を宣言する必要があります。
100 '
110 ' 16 色モード時 -- DIM PAL_DAT( 15,2)
120 ' 256 色モード時 -- DIM PAL_DAT(255,2)
130 '
140 ' なお、PAL_DAT ( pallete_No , RGB ) の RGB の値と色の関係は以下
150 ' の通りです。
160 ' 0 = Red
170 ' 1 = Green
180 ' 2 = Blue
190 '
200 ' < 16 色モード利用時の注意 >
210 ' 16 色モードのパレットデーターは下位4ビットを切り捨てた形、つ
220 ' まり、輝度が最も高い状態は 255 ではなく、240 で返ってきます。簡
230 ' 単に言えば、以下のいずれかの数字のみが返ってくるわけです。
240 '
250 ' 0.16.32.48.64.80.96.112.128.144.160.176.192.208.224.240
260 '
270 ' なお、このルーチンで得たパレット情報は、PALETTE 命令にそのまま
280 ' 流用できます。(色が変化する事は無いので心配しないでよい。)
290 '
300 ' このサンプルでは、プログラム実行直後のパレットデーターを表示します
310 '
320 SCREEN 0:SCREEN @0:VIEW:WINDOW:COLOR 7,0,7,0:CLS:WIDTH 80,25
330 DEFINT A-Z:DIM PAL_DAT(255,2)
340 PRINT "16色パレットを読み取り、表示します。"
350 GOSUB *GET_PAL_16
360 LOCATE 22,2:PRINT "Pallete no. R G B"
370 FOR I=0 TO 16
380 LOCATE 26,4+I
390 PRINT USING "## ### ### ###";I;PAL_DAT(I,0);PAL_DAT(I,1);PAL_DAT(I,2)
400 NEXT
410 PRINT:PRINT "リターンキーで終了します。"
420 WHILE INKEY$<>CHR$(13):WEND
430 END
440 '
450 *GET_PAL_16 ' PAL_DAT( pallete No , RGB ) にパレットデーターを格納
460 ' RGB の対応 : 0 = R , 1 = G , 2 = B
470 FOR PAL_WORK=0 TO 15
480 OUT &HFD90,PAL_WORK,1
490 PAL_DAT(PAL_WORK,2)=INP(&HFD92,1) AND 240 ' B 成分
500 PAL_DAT(PAL_WORK,0)=INP(&HFD94,1) AND 240 ' R 成分
510 PAL_DAT(PAL_WORK,1)=INP(&HFD96,1) AND 240 ' G 成分
520 NEXT
530 RETURN
540 '
550 *GET_PAL_256 ' PAL_DAT( pallete No , RGB ) にパレットデーターを格納
560 ' RGB の対応 : 0 = R , 1 = G , 2 = B
570 FOR PAL_WORK=0 TO 255
580 OUT &HFD90,PAL_WORK,1
590 PAL_DAT(PAL_WORK,2)=INP(&HFD92,1) ' B 成分
600 PAL_DAT(PAL_WORK,0)=INP(&HFD94,1) ' R 成分
610 PAL_DAT(PAL_WORK,1)=INP(&HFD96,1) ' G 成分
620 NEXT
630 RETURN